package com.zz.array;

/**
 * 教练使用整数数组 actions 记录一系列核心肌群训练项目编号。为增强训练趣味
 * 性，需要将所有奇数编号训练项目调整至偶数编号训练项目之前。请将调整后的训
 * 练项目编号以 数组 形式返回。
 * 示例 1：
 * 输入：actions = [1,2,3,4,5]
 * 输出：[1,3,5,2,4]
 * 解释：为正确答案之一
 * <p>
 * 提示：
 * 0 <= actions.length <= 50000
 * 0 <= actions[i] <= 10000
 */
public class LCR139Solution {
    public int[] trainingPlan(int[] actions) {
        if (actions == null || actions.length == 0) {
            return actions;
        }
        //记录下标的快慢指针
        int fast = 0, slow = 0;
        while (fast < actions.length){
            //如果是奇数就交换两个指针下标指向的值
            if(actions[fast] % 2 != 0){
                int temp = actions[fast];
                actions[fast] = actions[slow];
                //慢指针只有交换位置才移动
                actions[slow++] = temp;
            }
            //快指针每次循环都移动
            fast++;
        }
        return actions;
    }
}
